/**
 * CLASSE DataHora
 *
 * Esta classe contem a implementacao da estrutura dos objetos que guardam datas e horas de eventos.
 */

//-------------------------------------------------------------------
// I M P O R T A C A O   D E   C L A S S E S   D A   A P I   J A V A
//-------------------------------------------------------------------
 
import java.util.GregorianCalendar;

/**
 * Inicio da especificacao da classe.
 */
public class DataHora {

//------------------------------------------------------
// A T R I B U T O S
//------------------------------------------------------

	// Armazena o dia, mes e ano da data
	int dia, mes, ano;
	
	// Armazena hora e minuto do horario
	int hora, minuto;

//------------------------------------------------------
// C O N S T R U T O R E S
//------------------------------------------------------
	
	/**
	 * Construtor sem parametros da classe. Inicia a data-hora com a data e hora do sistema.
	 */
	public DataHora() {
		GregorianCalendar cal = new GregorianCalendar();
		dia = cal.get(GregorianCalendar.DAY_OF_MONTH);
		mes = cal.get(GregorianCalendar.MONTH) + 1;
		ano = cal.get(GregorianCalendar.YEAR);
		hora = cal.get(GregorianCalendar.HOUR_OF_DAY);
		minuto = cal.get(GregorianCalendar.MINUTE);
	}
	
	/**
	 * Construtor que recebe um string. Esse construtor inicia a data e hora com os valores
	 * guardados no String. O String deve conter a data no formato DD/MM/AAAA/HH/Min.
	 */
	public DataHora(String dataHora) {
		String[] dados = dataHora.split("/");
		dia = Integer.parseInt(dados[0].trim());
		mes = Integer.parseInt(dados[1].trim());
		ano = Integer.parseInt(dados[2].trim());
		hora = Integer.parseInt(dados[3].trim());
		minuto = Integer.parseInt(dados[4].trim());
	}

//------------------------------------------------------
// M E T O D O S
//------------------------------------------------------
	
	/**
	 * METODO geraString
	 *		Retorna um string contendo a data armazenada no objeto no formato "DD/MM/AAAA HH:Min".
	 */
	public String geraString() {
		return String.format("%02d/%02d/%04d %02d:%02d", dia, mes, ano, hora, minuto);
	}
	
	/**
	 * METODO geraStringBarras
	 *		Retorna um string contendo a data armazenada no objeto no formato "DD/MM/AAAA/HH/Min".
	 */
	public String geraStringBarras() {
		return String.format("%02d/%02d/%04d/%02d/%02d", dia, mes, ano, hora, minuto);
	}
	
} // Fim da classe DataHora